home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / byte0987.arc / REUSESOF.ARC / SORTELEM.DEF < prev    next >
Text File  |  1986-07-15  |  2KB  |  52 lines

  1. DEFINITION MODULE SortElemType;
  2. (*    This module is intended to describe the elements to be sorted
  3.  *    as an abstract data type.
  4.  *)
  5.  
  6.     EXPORT QUALIFIED ElemType, compare, select, optionMenu,
  7.                   ReadArray, WriteArray;
  8. TYPE
  9.     ElemType;                        (* pointer to data element *)
  10.  
  11. PROCEDURE compare (x, y: ElemType): BOOLEAN;
  12.     (* compare(x,y) implements: x < y
  13.             defined as NOT (y <= x),    for ascending order;
  14.             and if descending order is desired
  15.        compare(x,y) should implement: x > y
  16.             defined as NOT (x <= y);
  17.        where "<=" denotes a binary relation that must satisfy
  18.        the total order properties:
  19.          1. x <= x
  20.          2. x <= y AND y <= x   ==>   x = y
  21.          3. x <= y AND y <= z   ==>   x <= z
  22.         4. x <= y OR y <= x   for every x, y
  23.     *)
  24.  
  25. PROCEDURE select (option: CARDINAL);
  26.     (* input:           - a number denoting the requested option
  27.        output:       - the exported compare procedure gets assigned to one
  28.                      of the comparison procedures.
  29.                       - the option should be valid, otherwise a default
  30.                      may be used
  31.      *)
  32.  
  33. PROCEDURE optionMenu;
  34.     (* output:       - displays on the screen the available options. *)
  35.  
  36. PROCEDURE ReadArray(VAR A: ARRAY OF ElemType): CARDINAL;
  37.     (* input:           - an array of pointers, declared by the user module.
  38.        output:       - the array is filled with pointers to the memory used
  39.                      by the elements read, and the number of them is
  40.                     returned.
  41.        errors:       - can run out of memory.
  42.              NOTE: if the file contains more elements than those which
  43.             can be stored in the array, they are ignored.
  44.      *)
  45.  
  46. PROCEDURE WriteArray(A: ARRAY OF ElemType; n: CARDINAL) ;
  47.     (* input:           - an array of pointers, and the number of elements.
  48.        output:       - the elements are written to current output of InOut.
  49.      *)
  50.  
  51. END SortElemType.
  52.